运算符
运算符是指能将数值或变量进行相互运算的符号。比如说表达式 4 + 5 = 9。这里,4 和 5 称为操作数,+ 称为运算符。
Python 基础运算符有
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
算术运算符
注意
特别注意普通除法/的商是有小数的,而整除//的商是没有小数的。
运算符 | 描述 | 示例 |
---|---|---|
+ 加法 | 两数相加 | 5 + 2 是 7 |
- 减法 | 两数相减 | 5 – 2 是 3 |
* 乘法 | 两数相乘 | 5 * 2 是 10 |
/ 除法 | 两数相除 | 5 / 2 是 2.5 |
% 取模 | 两数相除后只取余数部分 | 5 % 2 是 1 |
** 幂运算 | 左操作数为底,右操作数为幂 | 5 ** 2 是 25 |
// 整除 | 两数相除后只取商的整数部分 | 5 // 2 是 2 |
python
a = 5
b = 2
print(a+b) #输出7
print(a-b) #输出3
print(a*b) #输出10
print(a/b) #输出2.5
print(a%b) #输出1
print(a**b) #输出25
print(a//b) #输出2
运算符
py
a = 10
b = 3
print(a+b,a%b,a//b,a**b)
程序输出的是?
[0/1]
比较(关系)运算符
注意
在程序里,一个等号=是赋值,把右边的值赋予给左边的变量,两个等号==是判断是否相等,是一个运算符,会得到 True 或者 False 的结果。
操作符 | 描述 | 示例 |
---|---|---|
== 相等 | 如果两者相等,返回 True,否则返回 False | (5==2) 是 False |
!= 不相等 | 如果两者不相等,返回 True,否则返回 False | (5!=2) 是 True |
> 大于 | 如果左边大于右边,返回 True,否则返回 False | (5>2) 是 True |
< 小于 | 如果左边小于右边,返回 True,否则返回 False | (5<2) 是 False |
>= 大于等于 | 如果左边大于等于右边,返回 True,否则返回 False | (5>=2) 是 True |
<= 小于等于 | 如果左边小于等于右边,返回 True,否则返回 False | (5<=2) 是 False |
python
a = 5
b = 2
print(a==b) #输出False
print(a!=b) #输出True
print(a>b) #输出True
print(a<b) #输出False
print(a>=b) #输出True
print(a<=b) #输出False
运算符
py
a = 10
b = 3
print(a>b,a<b,a!=b)
程序输出的是?
[0/1]
赋值运算符
注意
赋值运算符是为了精简程序,例如,score
在原有的基础上加1
,可以写成score = score + 1
,右边的 score 是原来的值,左边的 score 是新的值。也可以写成score += 1
。
运算符 | 描述 | 示例 |
---|---|---|
= | 赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c _= a 等效于 c = c _ a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
python
a = 5
a += 2
print(a) #输出7
a -= 2
print(a) #输出5
a *= 2
print(a) #输出10
a /= 2
print(a) #输出5.0
a %= 2
print(a) #输出1.0
a **= 2
print(a) #输出1.0
a //= 2
print(a) #输出0.0
运算符
py
a = 3
b = 3
c = 9
b += a
c // = b
print(a,b,c)
程序输出的是?
[0/1]
逻辑运算符
注意
- and 就是并且的意思,左右条件同时成立才成立
- or 是或者的意思,左右条件有一个成立就成立
- not 是不的意思,否定一个条件
运算符 | 描述 | 示例 |
---|---|---|
and | 布尔"与" x and y,x 和 y 都是 True,结果才是 True | 5 > 3 and 5 > 8 是 False |
or | 布尔"或" x or y,x 和 y 只要有一个 True,结果就是 True | 5 > 3 or 5 > 8 是 True |
not | 布尔"非" not x,x 是 True,结果就是 False,反之亦然 | not(5 > 8) 是 True |
python
a = 5
b = 3
c = 8
print(a > b and a > c) #输出False
print(a > b or a > c) #输出True
print(not a > c) #输出True
运算符
py
a = 2
b = 1
c = 3
print(a > b and a > c,a > b or a > c,not a > c)
程序输出的是?
[0/1]
提示
下面的内容建议学完后面的章节再回来看
位运算符
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为 1,则该位的结果为 1,否则为 0 | (5 & 3) 输出结果 1 ,二进制解释:5 的二进制0101,3 的二进制0011,按位进行与运算,结果是:0001,对应十进制是数字 1 |
| | 按位或运算符:只要对应的二个二进位有一个为 1 时,结果位就为 1。 | (5 | 3) 输出结果 7 ,二进制解释: 5 的二进制0101,3 的二进制0011,按位进行或运算,结果是:0111,对应十进制是数字 7 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为 1 | (5 ^ 3) 输出结果 6 ,二进制解释: 5 的二进制0101,3 的二进制0011,按位进行异或运算,结果是:0110,对应十进制是数字 6 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把 1 变为 0,把 0 变为 1。~x 类似于 -x-1 | (~5 ) 输出结果 -6 ,二进制解释: 5 的二进制0101,按位取反,得到1010, 以一个有符号二进制数的补码形式存在,对应的十进制是-6。原码反码补码知识点 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补 0。 | 5 << 1 输出结果 10 ,二进制解释:5 的二进制00101,<<1 之后变成 01010,对应十进制是数字 10,相当于乘 2 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数,低位丢弃,高位补符号位。 | 5 >> 1 输出结果 2 ,二进制解释: 5 的二进制00101,>>1 之后变成 00010,对应十进制是数字 2,相当于整除 2 |
python
a = 5 #二进制为0101
b = 3 #二进制为0011
print(a & b) #输出1,二进制为0001
print(a | b) #输出7,二进制为0111
print(a ^ b) #输出6,二进制为0110
print(~a) #输出-6,二进制为1010
print(a<<1) #输出10,二进制为01010
print(a>>1) #输出2,二进制为0010
成员运算符
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
python
a = 'apple'
b = 'pp'
print(b in a) #输出True
print(b not in a) #输出False
身份运算符
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y , 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(x) != id(y) 。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
python
a = 5
b = a
print(b is a) #输出True
print(b is not a) #输出False
print(id(a))
print(id(b)) #可以打印a跟b的id
运算符优先级
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,求余数和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 按位与 |
^ | 按位异或 |
| | 按位或 |
<= < > >= == != | 比较运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is 、is not | 身份运算符 |
in 、not in | 成员运算符 |
not and or | 逻辑运算符 |
python
a = 5
b = 3
print(a + b * a) #输出20
print(3>0 and 0>=0) #输出True
print(3>0 or 0>=0) #输出True
print(10 << 1) #输出20
print(10 >> 1) #输出5
print(10 ** 2) #输出100